# src/data_collector/interfaces/comment_collector_interface.py

from abc import ABC, abstractmethod
from sqlalchemy.orm import Session


'''
通用的评论采集接口，所有平台都实现这个接口：
'''
class CommentCollector(ABC):
    def __init__(self, api_keys=None):
        self.api_keys = api_keys or []

    @abstractmethod
    def get_comments(self, video_info, max_comments_per_video=500):
        """
        获取某个视频下的评论
        :param video_info: 包含 id 和 video_id 的字典
        :param max_comments_per_video: 最大评论数
        :return: RawComment 列表
        """
        pass

    @abstractmethod
    def get_replies(self, session: Session, video_id: str):
        """
        获取子评论
        :param session: 数据库会话
        :param video_id: 视频ID
        """
        pass